/*
 * 描述： <描述>
 * 修改人： rain
 * 修改时间： 2016年7月26日
 * 项目： rainhy-minitools
 */
package com.rainhy.minitools.sudoku;

import java.io.PrintStream;
import java.util.Map;

/**
 * 数据工具
 * 
 * @author rain
 * @version [版本号, 2016年7月26日]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public class SudokuUtils {
    
    /** 打印数据 */
    public static void print(Sudoku sudoku, PrintStream print) {
        String string = toString(sudoku);
        print.println(string);
    }
    
    /** 打印数据 */
    public static void print(Sudoku sudoku) {
        print(sudoku, System.out);
    }
    
    /** 输出格式化后的数据 */
    public static String toString(Sudoku sudoku) {
        StringBuilder sb = new StringBuilder();
        Map<Integer, Row> rowMap = sudoku.getRowMap();
        for (int y = 0; y < 9; y++) {
            Row row = rowMap.get(Integer.valueOf(y));
            for (int x = 0; x < 9; x++) {
                Grid grid = row.getGrid(Integer.valueOf(x));
                sb.append(grid.getValue()).append(' ');
                if (x == 2 || x == 5) {
                    sb.append("| ");
                }
            }
            sb.append("\r\n");
            if (y == 2 || y == 5) {
                sb.append("---------------------");
                sb.append("\r\n");
            }
        }
        return sb.toString();
    }
}